package org.example.config.i18nconfig;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @description:
 * @Author: whopxx
 * @CreateTime: 2025-07-27
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface I18nField {

    /**
     * 是否启用翻译，默认为true
     */
    boolean enabled() default true;

    /**
     * 翻译失败时的处理策略
     */
    FailureStrategy onFailure() default FailureStrategy.KEEP_ORIGINAL;

    /**
     * 翻译失败处理策略枚举
     */
    enum FailureStrategy {
        /**
         * 保持原值
         */
        KEEP_ORIGINAL,
        /**
         * 返回空字符串
         */
        RETURN_EMPTY,
        /**
         * 返回null
         */
        RETURN_NULL
    }
}
